package com.ntt.benew.dictionary.utils

import android.text.TextUtils
import java.util.regex.Pattern

object StringUtil {


    /**
     * 去掉标点符号
     */
    fun formatToRemoveSign(inputStr: String): String {
        return inputStr.replace(
            "\\p{Punct}|\\p{Space}".toRegex(), ""
        )
    }


    /**
     * 字符是否是中文
     *
     * @param c
     * @return
     */
    fun isChinese(c: Char): Boolean {
        return c.code in 0x4E00..0x9FA5
    }


    /**
     * 字符串是否是中文
     * @param str
     * @return
     */
    fun isPureChinese(str: String): Boolean {
        if (TextUtils.isEmpty(str)) return false
        val noSignStr = formatToRemoveSign(str)
        if (TextUtils.isEmpty(noSignStr)) return false
        for (c in noSignStr.toCharArray()) {
            if (!isChinese(c)) return false
        }
        return true
    }


    /**
     * 字符串是否是纯字母
     * @param str
     * @return
     */
    fun isPureLetter(str: String?): Boolean {
        if (TextUtils.isEmpty(str)) {
            return false
        }
        val pattern = Pattern.compile("[a-zA-Z]+")
        val matcher = pattern.matcher(str!!)
        return matcher.matches()
    }

    /**
     *  只包含中英文
     */
    fun isOnlyCnOrEn(data: String?): Boolean {
        return data?.run {
            val content = formatToRemoveSign(data).trim()
            return isPureChinese(content) || isPureLetter(content)
        } ?: false
    }
}